package domain;

public class Base extends Plan {

	private int unidadesLibres;
	private float costoAdicional;
	
	public Base(boolean facturable, int nroPlan, int unidadesLibres, float costoAdicional) {
		super(facturable, nroPlan);
		
		setUnidadesLibres(unidadesLibres);
		setCostoAdicional(costoAdicional);
	}

	public int getUnidadesLibres() {
		return unidadesLibres;
	}
	
	public void setUnidadesLibres(int minutosLibres) {
		this.unidadesLibres = minutosLibres;
	}

	public float getCostoAdicional() {
		return costoAdicional;
	}

	public void setCostoAdicional(float costoAdicionalPorVoz) {
		this.costoAdicional = costoAdicionalPorVoz;
	}
	
	@Override
	public void persistir() {
		// TODO Auto-generated method stub
		
	}
	
	public String getNombre(){
		return "Plan Base";
	}

	@Override
	public boolean agregablePaquete() {		
		return true;
	}

	@Override
	public float calcularCosto(Consumo consumo) {
		int excedente = 0; 
		
		if(consumo.getCantidad() > getUnidadesLibres()){
			excedente = consumo.getCantidad() - unidadesLibres;			
		}
		
		return consumo.getServicio().calcularConsumo(consumo.getCantidad()) + (excedente * getCostoAdicional());
	}

}
